//
// Created on 2024/5/20.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef RONGIMLIBTESTDEMO_NATIVEBASIC_H
#define RONGIMLIBTESTDEMO_NATIVEBASIC_H
#include "NativeObject.h"
#include <string>
namespace rcim {


// NativeBool ******************************************************************************
class NativeBool : public NativeObject {
public:
    NativeBool(bool value);
    napi_value toValue(napi_env env) override;

private:
    bool value;
};

// NativeInt32 ******************************************************************************
class NativeInt32 : public NativeObject {
public:
    NativeInt32(int value);
    napi_value toValue(napi_env env) override;

private:
    int value;
};

// NativeInt64 ******************************************************************************
class NativeInt64 : public NativeObject {
public:
    NativeInt64(long value);
    napi_value toValue(napi_env env) override;


private:
    long value;
};

class NativeString : public NativeObject {
public:
    NativeString(const char *cPtr);
    NativeString(std::string str);
    napi_value toValue(napi_env env) override;

private:
    std::string value;
};


} // namespace rcim
#endif // RONGIMLIBTESTDEMO_NATIVEBASIC_H
